#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main()
{
  while(1){
      //get string cmd,"ls -a -l -i" or "ps -a -l -x"
      //解析，char*argv[];
      pid_t id = fork();
      if(id < 0){
        perror("fork error!\n");
        return 1;
      }
      if (id == 0 ){
        //child替换的是子进程，因为进程是有独立性的，所以，父进程是不受影响的！
        sleep(3);
        //execl("/usr/bin/ls", "ls", "-a", "-l", "-i", NULL);
        execv(argv[0], argv);
        exit(1);
      }
    
      pid_t ret = waitpid(id, NULL, 0);
      if(ret > 0){
        printf("cmd run done ....\n");
      }
  }

  return 0;
}
